perm filename ALPH.OLD[XX,LCS]1 blob sn#213140 filedate 1976-04-23 generic text, type T, neo UTF8
00100		TITLE ALPHA
00200		ENTRY ALPHA
00300		EXTERNAL .COMM.,STF,POSI,PLTR,FONT,SPACER,PNUM,ROFF
00400		EXTERNAL IFIX,ITMSUB,RHORZ,CLEFS
00500	
00600		DEFINE JTR<.COMM.+=20> ↔ DEFINE RB<.COMM.+=43>
00700		DEFINE RW<.COMM.+=42> ↔ DEFINE RX<.COMM.+=40>
00800		DEFINE RY<.COMM.+=39> ↔ DEFINE R<.COMM.+=23>
00900		DEFINE RF<.COMM.+=18> ↔ DEFINE JR3<.COMM.+=27>
01000		DEFINE IFNT<.COMM.+=36> ↔ DEFINE RZ<.COMM.+=41>
01100		DEFINE JX<.COMM.+=34> ↔ DEFINE FILL<.COMM.+=22>
01200	
01400	ALPHA:	0
01500		MOVE .COMM.+1		;JA
01600		CAIN 7	
01700		JRST AL20		;JA=7 IS FOR TRILLS, ETC.
01800		MOVEI =99
01900		MOVEM JTR
02000		MOVE .COMM.+6
02100		CAMGE [100.0]
02200		JRST .+3
02300		MOVN [100.0]
02400		FADRM .COMM.+6		;R5=R5-100
02500		MOVE NR#
02600		CAME [ASCIZ/PRIM0/]
02700		CAMN [ASCIZ/BDI40/]
02800		JRST AL54
02900		MOVE [ASCIZ/BDR40/]
03000		MOVEM NR
03100	AL54:	MOVE [19.7]
03200		FMPR .COMM.+6
03300		FMPR STF+=8
03400		MOVEM R		;OR JUST LEAVE IN AC0
03500	
03600		MOVE 1,.COMM.+=24	;J3
03700		TLC 1,232000
03800		FADR 1,1
03900		MOVEM 1,RB		; OR LEAVE IN AC1
04000		MOVE 2,.COMM.+5
04100		MOVEM 2,RW		; OR LEAVE IN AC2
04200		SETZM .COMM.+=30	;J9=0
04300		MOVEI 15,4
04400	AL50X:	SETOM NXZ#		; THE BIG LOOP
04500		MOVEM 15,K#
04600		MOVE 3,.COMM.+3(15)	;RZ IS AC3
04700		FADR 3,[0.2]
04800		JSA 16,IFIX
04900		JUMP 3
05000		MOVEM JY#
05100		MOVE 4,[=1000000]	; 4 IS JX
05200		MOVEM 4,JX
05300		MOVEI 14,1		; LA
05400	AL53X:	MOVEM 14,LA#
05500		MOVE JY
05600		IDIV JX
05700		MOVEM J5X#
05800		MOVE 2,.COMM.+=24	;R3=J3
05900		TLC 2,232000
06000		FADR 2,2
06100		MOVEM 2,.COMM.+4
06200		CAIN =99
06300		JRST AL55
06400	AL73:	SKIPL KFNT#
06500		JRST .+3
06600		MOVEI 2,1
06700		MOVEM 2,IFNT
06800		CAIGE =70
06900		JRST AL72
07000		SETOM KFNT
07100		SETOM IFNT
07200		SUBI =60
07300		MOVEM .COMM.+=26	; J5
07400	
07500	AL72:	CAIGE =50
07600		JRST AL1
07700	
07800		CAIG =49
07900		JRST AL72X
08000		CAIN =50
08100		JRST AL2
08200		CAIN =51
08300		JRST AL3
08400		CAIN =52
08500		JRST AL9
08600		CAIN =53
08700		JRST AL4
08800		CAIN =54
08900		JRST AL5
09000	AL72X:	CAILE =55
09100		JRST AL10
09200		MOVEI =36	;LINE 6200 IN ALPHA.F4 11/3/76
09300		MOVEM .COMM.+=26	; J5
09400		MOVE 2,[2.9]
09500		FADRM 2,.COMM.+5	; R4
09600		JRST AL1
09700	
09800	AL10:	ADDI 6
10000		MOVE 2,NR
10100		MOVEM 2,NRX#
10200		SETZM NXZ#
10300		MOVE 2,[ASCIZ/BDR40/]
10400		MOVEM 2,NR
10500		MOVE 2,FONT
10600		MOVEM 2,NJF#
10700		SETOM FONT		; JFONT
10800		JRST AL1
10900	
11000	AL2:	MOVE 2,[ASCIZ/BDR40/]
11100		MOVEM 2,NR
11200		SKIPL FONT
11300		JRST AL11
11400		JRST AL9
11500	
11600	AL3:	MOVE 2,[ASCIZ/BDI40/]
11700		MOVEM 2,NR
11800		JRST .-5
11900	
12000	AL4:	MOVN 2,[2.0]
12100		MOVEM 2,.COMM.+=22	;FILL IS EQUIV. TO RJQ(19)
12200		JRST AL11
12300	
12400	AL5:	SETZM .COMM.+=22
12500		JRST AL11
12600	AL9:	MOVE 2,[ASCIZ/PRIM0/]
12700		MOVEM 2,NR
12800		JRST AL11
12900	
12950	AL1:	MOVEM .COMM.+=26	;PUT AWAY J5
13000		JSA 16,SPACER
13100		.COMM.+=26
13200		IFNT
13300		RB
13400		R
13500	;;	MOVE .COMM.+=26		; PUT J5 BACK INTO AC0
13600		CAILE =60
13700		JRST AL71
13800		CAIN =47
13900		JRST AL6
14000		CAIL =47
14100		JRST AL11
14200		SKIPE 2,.COMM.+=12		; LABEL 7 IN ALPHA.F4
14300		JRST AL79
14400		SKIPG FONT
14500		JRST AL78
14600		JRST AL77
14700	AL79:	MOVEM 2,.COMM.+=10		; R9
14800		SETOM .COMM.+=30	;J9=-1
14900		JRST AL77
15000	AL78:	SKIPGE PLTR
15100	AL77:	CAIL =36
15200		JRST AL30
15300		MOVE 2,[ASCIZ/PRIM0/]
15400		CAME 2,NR
15500		JRST AL70
15600		SKIPGE FONT
15700		CAIGE =10
15800		JRST AL30
15900		JRST AL71
16000	
16100	AL70:	CAILE =9
16200		SKIPL IFNT	;IFNT IS .COMM.+=36
16300		JRST AL71
16400		ADDI =26
16500		MOVEM .COMM.+=26	; J5
16600	
16700	AL71:	MOVE 2,.COMM.+7
16800		MOVEM 2,RX
16900		MOVE 2,[0.28]
17000		FMPR 2,.COMM.+6
17100		MOVEM 2,.COMM.+7
17200		MOVE 3,.COMM.+=8
17300		MOVEM 3,RY
17400		MOVEM 2,.COMM.+=8
17500		MOVE 2,.COMM.+=9	; R8
17600		MOVEM 2,RZ		; LINE 11400 IN ALPHA.F4
17700		MOVE 2,[-2.1]
17800		FADRM 2,.COMM.+5
17900		MOVE 2,FILL
18000		MOVEM 2,.COMM.+=9
18100		MOVE 2,NR
18200		MOVEM 2,.COMM.+=11	; NRJ IS EQUIV TO R10
18300		MOVEI 2,=12
18400		MOVEM 2,.COMM.+1
18500		JSA 16,CLEFS
18600		MOVE 2,RX
18700		MOVEM 2,.COMM.+7
18800		MOVE 2,RY
18900		MOVEM 2,.COMM.+=8
19000		MOVE 2,RZ
19100		MOVEM 2,.COMM.+=9
19200		SKIPGE NXZ
19300		JRST AL6
19400		MOVE 2,NRX
19500		MOVEM 2,NR
19600		MOVE 2,NJF
19700		MOVEM 2,FONT
19800		JRST AL6
19900	
20000	AL30:	SETZM .COMM.+=28	;J7=0
20100		MOVE 2,.COMM.+6
20200		MOVEM 2,.COMM.+7
20300		JSA 16,PNUM
20400	AL6:	JSA 16,ROFF
20500		JUMP RB
20600		MOVE 2,
20700		JSA 16,IFIX
20800		JUMP 2
20900		MOVEM .COMM.+=24	;J3=ROFF(RB)
21000		MOVE 2,RW
21100		MOVEM 2,.COMM.+5
21200	AL11:	MOVN 2,J5X
21300		IMUL 2,JX
21400		ADDM 2,JY
21500	AL53:	MOVE 2,JX
21600		IDIVI 2,=100
21700		MOVEM 2,JX
21800		MOVE 14,LA
21900		CAIGE 14,4
22000		AOJA 14,AL53X
22100	
22200	AL50:	MOVE 15,K
22300		CAIGE 15,6
22400		AOJA 15,AL50X
22500	AL55:	MOVE 2,JTR
22600		CAIE 2,=99
22700		JRST AL52
22800		JRST AL100
22900	
23000	AL20:	MOVE .COMM.+7	; FOR TRILLS, ETC.
23100		MOVEM RF
23200		MOVE .COMM.+=28		; J7 IS IN AC0
23300		CAIG 1
23400		JRST AL200
23500		CAIL =8
23600		JRST AL201
23700	
23800		MOVE 2,.COMM.+=9
23900		MOVEM 2,RW
24000		MOVE 2,.COMM.+4
24100		MOVEM 2,RB
24200		MOVEM NR	; NR=J7
24300		MOVE 2,.COMM.+=26
24400		MOVEM 2,JY
24500		MOVE 2,.COMM.+=10
24600		JUMPN 2,.+3
24700		MOVE 2,[1.0]
24800		MOVEM 2,.COMM.+=10
24900		MOVEM 2,RY
25000		FMPR 2,STF+=8
25100		FMPR 2,[23.84]
25200		MOVEM 2,RX
25300		MOVE 2,[0.45]
25400		FMPR 2,RY
25500		MOVEM 2,.COMM.+7
25600		SETZM .COMM.+=30	; J9=0  LINE 16500
25700		MOVEI 2,=18
25800		MOVEM 2,.COMM.+=26
25900		MOVEI 2,3
26000		MOVEM 2,.COMM.+1	;JA=3
26100		SETZM .COMM.+6
26200		SETZM .COMM.+=8
26300		MOVN 2,[6.0]
26400		FADR 2,.COMM.+5
26500		JSA 16,CLEFS
26600	
26700		SKIPN 1,JY
26800		JRST AL222
26900		MOVN 2,[1.0]
27000		MOVEM 2,.COMM.+=9	; R8=-1
27100		MOVEI 2,=19
27200		MOVEM 2,.COMM.+=26	; J5=19
27300		CAIGE 1,=100
27400		JRST AL203
27500		SUBI 1,=100
27600		MOVEM 1,JY
27700		JSA 16,CLEFS
27800	AL203:	MOVE 2,RB
27900		FADR 2,RX
28000		MOVEM 2,.COMM.+4
28100		MOVE JY
28200		CAIGE =10
28300		JRST AL204
28400		SUBI =10
28500		MOVEM JY
28600		JSA 16,CLEFS
28700	AL204:	MOVE 2,RB
28800		FADR 2,RX
28900		FADR 2,RX	; R3=RB+RX+RX
29000		MOVEM 2,.COMM.+4
29100		SKIPE JY
29200		JSA 16,CLEFS
29300	
29400	AL222:	MOVE NR
29500		CAIN 2
29600		JRA 16,(16)
29700		SKIPN 2,RW
29800		JRST ALX
29900		FMPR 2,[5.96]
30000		FSBR 2,RB
30100		MOVNM 2,.COMM.+4
30200	ALX:	MOVE 2,POSI+=9		;RX=POS
30300		MOVEM 2,RX
30400		MOVE 2,RF
30500		MOVEM 2,.COMM.+=7
30600		MOVE 2,[3.0]
30700		FADRB 2,.COMM.+5
30800		MOVEM 2,.COMM.+6	;R5=R4
30900		SETZM .COMM.+=28
31000		SETZM .COMM.+=8
31100		SETZM .COMM.+=9
31200		SETZM .COMM.+=11	; R10=0
31300	AL206:	JSA 16,ITMSUB
31400		MOVE NR
31500		CAIN 4
31600		JRA 16,(16)
31700		MOVE 2,RX
31800		MOVEM 2,POSI+=9	;POS=RX
31900		JSA 16,RHORZ
32000		JUMP RF
32100		MOVE 3,
32200		JSA 16,ROFF
32300		JUMP 3
32400		MOVEM .COMM.+4		;R3=ROFF(RHORZ(RF))
32500		MOVE 2,[1.4]
32600		FMPR 2,RY
32700		FADRM 2,.COMM.+6
32800		JSA 16,ITMSUB
32900		JRA 16,(16)
33000	
33100	AL202:	MOVE 7,[47717088.0]	; FOR 8VA BASSA
33200		MOVE 2,[88709999.0]
33300		MOVEM 2,.COMM.+=9
33400		MOVE 10,[138.0]
33500		JRST AL214-1
33600	
33700	AL201:	SKIPE .COMM.+6
33800		JRST .+3
33900		MOVE 2,[1.0]
34000		MOVEM 2,.COMM.+6
34100		MOVE .COMM.+=28
34200		CAIN =15
34300		JRST AL205
34400		MOVE 10,[47.0]
34500		MOVE 7,[99999999.0]
34600		MOVE 6,[51089170.0]
34700	AL214:	MOVEM 10,RR10#
34800		MOVE 5,.COMM.+6
34900		FMPR 5,STF+=8		;RR5 IS AC5
35000		MOVEM 5,RR5#
35100		FMPR 10,5	;AC10 WILL BE RR3
35200		FADR 10,.COMM.+4
35300		MOVEM 10,RR3#
35400		SETOM JTR
35500		MOVE 2,.COMM.+=28
35600		MOVEM 2,.COMM.+=25	;J4=J7
35700		MOVE 2,.COMM.+=29
35800		MOVEM 2,.COMM.+=31	;J10=J8
35900		JRST AL212
36000	
36100	AL205:	MOVE 6,[51010582.0]
36200		MOVE 7,[70999999.0]
36300		MOVE 10,[56.0]
36400		JRST AL214
36500	
36600	AL213:	MOVE 2,[1.8]
36700		FMPR 2,RR5
36800		MOVEM 2,.COMM.+=9
36900		SETZM .COMM.+=10 
37000		MOVE 2,RR3
37100		MOVEM 2,.COMM.+4
37200		MOVE 2,RF
37300		MOVEM 2,.COMM.+7
37400		MOVE 2,[0.7]
37500		FMPR 2,STF+=8
37600		FADRB 2,.COMM.+5
37700		MOVEM 2,.COMM.+6
37800	;;	MOVE 2,.COMM.+=25	;J5=J4  (NO LONGER NEEDED]
37900	;;	MOVEM 2,.COMM.+=26	
38000		SETOM .COMM.+=32	;J11=-1
38100		SKIPGE .COMM.+=25
38200		MOVNS .COMM.+=32	;IF(J4)J11=-J11
38300		SKIPE .COMM.+=31	;IF(J10.NE.)J11=0
38400		SETZM .COMM.+=32
38500		MOVEI 2,1
38600		MOVEM 2,.COMM.+=28
38700		SETZM .COMM.+=31	;J10=0
38800		JSA 16,ITMSUB
38900		JRA 16,(16)
39000	
39100	AL200:	MOVE 2,.COMM.+6
39200		JUMPN 2,.+3
39300		MOVE 2,[1.0]
39400		MOVEM 2,.COMM.+6
39500		MOVN 4,.COMM.+=28	;IF(J7.EQ.-8)GO TO 202
39600		CAIN 4,=8
39700		JRST AL202
39800		MOVEM 2,RR10
39900		MOVE 2,[6.0]
40000		FMPR 2,STF+=8
40100		JSA 16,IFIX
40200		JUMP 2
40300		ADDB .COMM.+=24		;J3=J3+6*RSTJ2
40400		MOVEM JR3
40500		MOVE 6,[51898799.0]
40600		MOVE 7,[99999999.0]
40700		MOVNM 4,JTR	; -J7 WAS IN AC4
40800	AL212:	MOVEM 6,.COMM.+=7
40900		MOVEM 7,.COMM.+=8
41000		MOVE 2,[0.8]
41100		FMPRM 2,.COMM.+6
41200		JRST AL54
41300	
41400	AL52:	SKIPE JTR
41500		JRST AL100
41600		MOVE 3,JR3
41700		TLC 3,232000
41800		FADR 3,3
41900		MOVE 2,[20.0]
42000		FMPR 2,STF+=8
42100		FMPR 2,RR10
42200		FADR 2,3
42300		MOVEM 2,.COMM.+4
42400		MOVEI 4
42500		MOVEM .COMM.+1
42600		MOVEI 2
42700		MOVNM .COMM.+=28
42800		MOVE RF
42900		MOVEM .COMM.+7
43000		MOVE [0.7]
43100		FMPR RR10
43200		MOVEM .COMM.+=10
43300		MOVE [0.9]
43400		FMPR RR10
43500		MOVEM .COMM.+=9
43600		SETZM .COMM.+=31
43700		SKIPGE PLTR
43800		AOS .COMM.+=31
43900		JSA 16,ITMSUB
44000	AL100:	SKIPGE JTR
44100		JRST AL213
44200		SKIPL KFNT
44300		JRST .+3
44400		MOVEI 1
44500		MOVEM IFNT
44600		SETZM KFNT
44700		JRA 16,(16)	;END
44800	
44900	SPACER:	0	;CALL SPACERR(J5,IFNT,RB,R)
45000		MOVE @(16)	; J5 FOR NOW
45100		CAILE =47
45200		JRST SP10
45300		CAIG =9
45400		JRST SP117
45500		CAIGE =36
45600		JRST SP10
45700	SP117:	MOVE 3,[1.0]		; AC3 IS RSX
45800		SKIPGE  @1(16)	;IFNT FOR NOW
45900		MOVE 3,[0.9]
46000		JRST SP3
46100	
46200	SP10:	CAIGE =47
46300		JRST SP5
46400		CAIN =52
46500		JRST SP14
46600		CAIE =48
46700		JRST .+3
46800		MOVEI 2,1
46900		MOVEM 2,@1(16)		;IFNT
47000		CAIN =49
47100		SETOM @1(16)
47200		CAIGE =55
47300		JRA 16,4(16)
47400		JRST SP5
47500	
47600	SP14:	SETZM @1(16)	
47700		MOVEI 2,=10
47800		MOVEM 2,.COMM.+1		;JA=10
47900		JRA 16,4(16)
48000	
48100	SP5:	MOVE 3,[1.08]
48200		SKIPGE @1(16)
48300		MOVE 3,[0.96]
48400		CAIN =22
48500		JRST SP277
48600		CAIE =32
48700		JRST SP3
48800	SP277:	FMPR 3,[1.12]		;3 IS RSX
48900	SP3:	CAIGE =36
49000		CAIN 1
49100		JRST SP21
49200		CAIE =18
49300		CAIN =19
49400		JRST SP21
49500		SKIPL @1(16)
49600		JRST SP4
49700		CAIE =15	; NEXT FOR LOWER CASE SPACING
49800		CAIN =21
49900		JRST SP21
50000		CAIE =29
50100		JRST SP4
50200	SP21:	CAIE =47
50300		FMPR 3,[0.68]	;SPACER FOR A BLANK
50400	SP4:	FMPR 3,@3(16)	;RB=RB+R*RSX
50500		FADRM 3,@2(16)
50600		JRA 16,4(16)
50700		END